#!/usr/bin/env python
# coding:utf-8

import numpy as np

"""
之前的例子都是先创建一个Python序列，然后通过array函数将其转换为数组，这样做显然效率不高。
因此NumPy提供了很多专门用来创建数组的函数。
"""
print '--------------------------------------------------------------------------------'
print np.arange(0, 10, 1)
print np.linspace(0, 10, num=11)
print np.linspace(0, 10, num=10, endpoint=False)
print np.logspace(1, 10, num=10)
print '--------------------------------------------------------------------------------'
"""
可以写一个Python的函数，它将数组下标转换为数组中对应的值，然后使用此函数创建数组：
fromfunction 函数的第一个参数为计算每个数组元素的函数，
fromfunction 函数的第二个参数为数组的大小(shape)，因为它支持多维数组，所以第二个参数必须是一个序列。
"""
def func1(i):
    return i**2

print np.fromfunction(func1, (10,))
# [  0.   1.   4.   9.  16.  25.  36.  49.  64.  81.]

def func2(x, y):
    return x * y

print np.fromfunction(func2, (5, 10))
# [[  0.   0.   0.   0.   0.   0.   0.   0.   0.   0.]
#  [  0.   1.   2.   3.   4.   5.   6.   7.   8.   9.]
#  [  0.   2.   4.   6.   8.  10.  12.  14.  16.  18.]
#  [  0.   3.   6.   9.  12.  15.  18.  21.  24.  27.]
#  [  0.   4.   8.  12.  16.  20.  24.  28.  32.  36.]]
print '--------------------------------------------------------------------------------'
print '--------------------------------------------------------------------------------'


